TUDENT_ID="60343"
STUDENT_NAME="HeChenFei"
SERVER_IP="127.0.0.1"  # 根据实际情况修改

echo "开始配置iSCSI Target和Initiator..."

# 检查root权限
if [ "$(id -u)" -ne 0 ]; then
    echo "请使用root权限运行此脚本"
    exit 1
fi

# 安装必要软件包
echo "安装软件包..."
yum install -y targetcli iscsi-initiator-utils lvm2 > /dev/null 2>&1

# 创建虚拟磁盘（实际环境请使用真实磁盘）
echo "创建虚拟磁盘..."
dd if=/dev/zero of=/var/lib/iscsi_disk.img bs=1M count=1024 status=none
DISK_DEVICE=$(losetup -f --show /var/lib/iscsi_disk.img)

# 配置LVM
echo "配置LVM..."
pvcreate $DISK_DEVICE -y > /dev/null 2>&1
vgcreate vg_${STUDENT_ID} $DISK_DEVICE > /dev/null 2>&1
lvcreate -L 1G -n lun_${STUDENT_NAME} vg_${STUDENT_ID} -y > /dev/null 2>&1

# 配置iSCSI Target
echo "配置iSCSI Target..."
systemctl enable target > /dev/null 2>&1
systemctl start target > /dev/null 2>&1

# 使用expect或直接命令来配置targetcli
cat > /tmp/targetcli_commands << EOF
/backstores/block create name=disk1 dev=/dev/vg_${STUDENT_ID}/lun_${STUDENT_NAME}
/iscsi create iqn.2025-10.cn.edu.${STUDENT_NAME}:disk1
/iscsi/iqn.2025-10.cn.edu.${STUDENT_NAME}:disk1/tpg1/acls create iqn.2025-10.cn.edu.${STUDENT_NAME}:client1
/iscsi/iqn.2025-10.cn.edu.${STUDENT_NAME}:disk1/tpg1/luns create /backstores/block/disk1
/iscsi/iqn.2025-10.cn.edu.${STUDENT_NAME}:disk1/tpg1/portals create 0.0.0.0 3260
saveconfig
exit
EOF

targetcli < /tmp/targetcli_commands > /dev/null 2>&1

# 配置iSCSI Initiator
echo "配置iSCSI Initiator..."
echo "InitiatorName=iqn.2025-10.cn.edu.${STUDENT_NAME}:client1" > /etc/iscsi/initiatorname.iscsi
systemctl restart iscsid > /dev/null 2>&1
systemctl restart iscsi > /dev/null 2>&1

# 发现和登录Target
echo "发现和登录iSCSI Target..."
iscsiadm -m discovery -t st -p $SERVER_IP > /dev/null 2>&1
iscsiadm -m node -T iqn.2025-10.cn.edu.${STUDENT_NAME}:disk1 -p $SERVER_IP -l > /dev/null 2>&1

# 创建检查脚本
echo "创建检查脚本..."
cat > /root/iscsi_check_24055060343.sh << 'EOF'
#!/bin/bash
echo "=== iSCSI会话详细信息 ==="
iscsiadm -m session -P 3
echo ""
echo "=== 块设备信息 ==="
lsblk
echo ""
echo "=== iSCSI节点信息 ==="
iscsiadm -m node
echo ""
echo "=== 检查完成时间 ==="
date
EOF

chmod +x /root/iscsi_check_24055060343.sh

# 清理临时文件
rm -f /tmp/targetcli_commands

echo "配置完成！"
echo "运行以下命令验证配置："
echo "/root/iscsi_check_24055060343.sh > /root/iscsi_status_${STUDENT_NAME}.txt"
